WebWork 2 : 迭代标签
This page last changed on Nov 30, 2004 by jcarreira.
Iterator 将在一个值上进行迭代. 迭代值可以是下列类型之一: java.util.Collection, java.util.Iterator, java.util.Enumeration, java.util.Map, 数组. 示例:<ww:iterator value="days">
<p>day is: <ww:property/></p>
</ww:iterator>
<ww:bean name="com.opensymphony.webwork.example.IteratorExample" id="it"> <ww:param name="day" value="'foo'"/> <ww:param name="day" value="'bar'"/> </ww:bean> <table border="0" cellspacing="0" cellpadding="1"> <tr> <th>Days of the week</th> </tr> <ww:iterator value="#it.days" status="rowstatus"> <tr> <ww:if test="#rowstatus.odd == true"> <td style="background: grey"><ww:property/></td> </ww:if> <ww:else> <td><ww:property/></td> </ww:else> </tr> </ww:iterator> </table> 下一个例子进一步演示了status属性的作用, 通过OGNL从活动中取出对象DAO, 使用DAO迭代组和组包含的用户(在一个安全环境中). 方法last()表示当前对象是否是迭代中最后一个对象, 如果不是, 需要使用逗号把用户分开: <webwork:iterator value="groupDao.groups" status="groupStatus"> <tr class="<webwork:if test="#groupStatus.odd == true ">odd</webwork:if><webwork:else>even</webwork:else>"> <td><webwork:property value="name" /></td> <td><webwork:property value="description" /></td> <td> <webwork:iterator value="users" status="userStatus"> <webwork:property value="fullName" /><webwork:if test="!#userStatus.last">,</webwork:if> </webwork:iterator> </td> </tr> </webwork:iterator> 下一个例子迭代一个活动的集合, 并将每个迭代值传递给另一个活动. <ww:action name="entries" id="entries"/> <ww:iterator value="#entries.entries" > <ww:property value="name" /> <ww:property /> <ww:push value="..."/> <ww:action name="edit" id="edit" > <ww:param name="entry" value="[0]" /> </ww:action> </ww:iterator> 这里的窍门是使用了操作符'[:0]'. 它获取当前值并传递给活动edit.
'[:0]'操作符与<ww:property />的效果一样. (当然, 这个标签不能用在param标签中). |
Document generated by Confluence on Dec 14, 2004 16:36 |